package com.jielihaofeng.chat.service;

import com.jielihaofeng.chat.vo.ChatMessageVO;
import com.jielihaofeng.chat.entity.ChatMessageEntity;
import com.jielihaofeng.chat.query.ChatMessageQuery;
import com.jielihaofeng.framework.common.page.PageResult;
import com.jielihaofeng.framework.common.service.BaseService;

import java.util.List;

/**
 * 消息表
 *
 * @author 阿沐 babamu@126.com
 * @since 1.0.0 2022-07-22
 */
public interface ChatMessageService extends BaseService<ChatMessageEntity> {

    PageResult<ChatMessageVO> page(ChatMessageQuery query);

    void save(ChatMessageVO vo);

    void update(ChatMessageVO vo);

    void delete(List<Long> idList);

    /**
     * 发送消息
     *
     * @param vo 消息vo
     */
    ChatMessageEntity sendMessage(ChatMessageVO vo);

    /**
     * 获取所有消息列表
     *
     * @param userId 用户id
     * @return 消息列表
     */
    List<ChatMessageEntity> getAllMessageList(Long userId);

    /**
     * 获取消息列表
     *
     * @param query 查询参数
     * @return 消息列表
     */
    PageResult<ChatMessageEntity> getMessageList(ChatMessageQuery query);
}
